package com.superatom.concurrent.basic;

/**
 * 定义一个需要执行的工作任务
 */
public class LiftOff implements Runnable{

    protected int countDown = 10;
    private static int taskCount = 0;
    private final int id = taskCount++;
    public LiftOff(){

    }

    public LiftOff(int countDown){
        this.countDown = countDown;
    }

    public String status(){
        return "#" + id + "(" + (countDown > 0 ? countDown : "Liftoff!") + "),";
    }

    public void run() {
        while (countDown-- > 0){
            System.out.print(status());
            // 对线程调度的一个建议："我已经完成最重要的部分了，现在适合切换到其他任务执行"
            Thread.yield();
        }
    }
}
